// 提交链接 https://leetcode.cn/problems/longest-substring-without-repeating-characters/submissions/526267504/
// 3. 无重复字符的最长子串
// 完成日期： 2024.8.30
// c++ 使用双指针与哈希表操作


class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        unordered_map<char, pair<int, int>> ma;
        int l = 0, r = 0;
        int ans = 0;
        while (r < s.size())
        {
            if (ma[s[r]].first)
            {
                r = l = ma[s[r]].second + 1;
                ma.clear();
                continue;
            }
            ans = max(ans, r - l + 1);
            ma[s[r]] = pair<int, int>(1, r);
            r += 1;
        }
        return ans;
    }
};